The popularity of personal computers has become such that their use is an everyday occurrence for much of the world's population. Whilst improvements have been, and continue to be, made to the user interfaces of personal computers in order to make them usable by a wider cross section of the population, personal computer systems themselves have also greatly increased in their internal complexity so that today most users are unfamiliar with the internal design and configuration of the computers that they use.
This, together with the increasingly ubiquitous nature of the Internet infrastructure and the services that are becoming available using it, is leading to the deployment of simpler, specialized computing devices that allow users to access applications at all times and on demand.
In consequence, research and development efforts relating to personal computer design are being directed to changing the nature of the desktop computer, at least for some applications, from being a relatively complex, but flexible, assembly of interoperating components, such as processor, memory, sound subsystem, CD-ROM drive, network card etc, each having distinct functions, parameters and features to becoming a single, network-connected and relatively reliable appliance, more akin to a telephone or television set than a microcomputer, whose internal make-up and functioning is completely invisible and irrelevant to the user.
The overall objective of such efforts is to remove complexity from the hands of the user in order to enable, ultimately, a more productive use of the technology by allowing users to focus on the task at hand rather than the tool itself.
Whilst this, at first sight, may seem a relatively straightforward and routine matter it does present some significant design challenges.
For instance, a major source of complexity, and also of much unreliability, in known systems is the expandability and upgradeability of the systems. The existence of standard electrical and mechanical interfaces to option cards and disk drive units means that the user of a system has many ways in which they can change the features of the system by adding or upgrading components. A consequence of this is that the standard platform that the user receives usually has to be designed so that it will work reliably with all the possible upgrade possibilities a user might reasonably choose to install.
However, if the possibilities for expansion are limited a choice has to be made as to which features the product must have as standard features and which features should be optional.